package Ubi.Interfaces;

import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
import java.util.Map.Entry;

import Ubi.App.Contact;
import Ubi.App.EventBase;
import Ubi.App.EventMeeting;
import Ubi.App.EventPickUp;
import android.location.Location;

public interface IEventHandler 
{
	int GetNewServerId();
	
	// Meeting
	EventMeeting CreateEvent(Location dest, Date date, Contact creator, ArrayList<Contact> awaiting);
	// I Pick You
	EventPickUp	CreateEvent(Location dest, Date date, ArrayList<Contact> awaiting, Contact picker);
	// Pick Me
	EventPickUp	CreateEvent(Location dest, Date date, Entry<Contact, Location> creator);
	
	
	boolean RemoveParticipant(int eventId, Contact toRemove);
	boolean CancelEvent(int eventId);
	boolean Update(int eventId, EventBase newEvent);
	boolean TryUpdate(int eventId, EventBase newEvent);
	boolean RespondToInvitation(int eventId, Contact contact, boolean response);
	
	
	void EventUpdated(EventBase newEvent);
	void EventInvitation(EventBase newEvent);
	
	
}
